package com.fqdf.framework.android.net.response;

import android.net.Uri;

import com.fqdf.framework.android.util.CheckLogicUtil;
import com.fqdf.framework.android.util.Constants;


/**
 * @desc 主要用于解析服务器router的头
 */
public class RouterConstants {

    // router 协议头
    public static final String ROUTER_SCHEME = "gofun://";

    // 等待用车资源定位符
    public static final String WAIT_USE_CAR = "waituse/:";

    // 用车资源定位符
    public static final String IN_USE_DETAIL = "inusedetail/:";

    // 用车前拍照资源定位符
    public static final String USE_CAR_BEFORE_TAKE_PIC = "beforeusepic/:";

    // 人脸识别资源定位符
    public static final String FACE_ID_RECO = "faceid/:";

    // 原始路由url
    public static final String ORIGIN_ROUTER_URL = "originRouterUrl";
    // skipUrl
    public static final String SKIP_URL = "skipUrl";

    // 获取router对应的URL
    public static String getRouterUrl(String str) {
        if (CheckLogicUtil.isEmpty(str)) {
            return ROUTER_SCHEME;
        }
        return ROUTER_SCHEME + str;
    }

    /**
     * 获取routerurl地址，并且不包含冒号
     * @param str url 资源相对Activity的路径
     * @return
     */
    public static String getRouterUrlNoColon(String str) {

         String routerUrl = getRouterUrl(str);
        if (routerUrl.lastIndexOf(':') != routerUrl.length() - 1) {
            return routerUrl;
        }

        return routerUrl.substring(0, routerUrl.length() - 1);
    }

    /**
     * url是否和router对象中某一个相等
     *
     * @param url        传过来的原始url
     * @param routerType 本地定义的routertype类型
     * @return true 代表相同 false 代表不相同
     */
    public static boolean isEqualRouter(String url, String routerType) {
        if (CheckLogicUtil.isEmpty(url)) {
            return false;
        }

        return url.startsWith(getRouterUrl(routerType).substring(0, getRouterUrl(routerType).length() - 1));
    }

    /**
     * 判断是否是用车计费的url
     *
     * @param url 传递的跳转的url
     * @return true 代表是跳转到确认用车界面。false
     */
    public static boolean isEqualInUseDetail(String url) {
        return isEqualRouter(url, IN_USE_DETAIL);
    }

    /**
     * 增加参数
     *
     * @param url   原始的Url串
     * @param key   参数的key值
     * @param value 参数的value值
     * @return 拼接后的
     */
    public static String addParam(String url, String key, String value) {

        if (CheckLogicUtil.isEmpty(url) || CheckLogicUtil.isEmpty(key)) {
            return Constants.BLANK;
        }

        if (CheckLogicUtil.isEmpty(value)) {
            value = Constants.BLANK;
        }

        Uri uri = Uri.parse(url);

        return uri.buildUpon().appendQueryParameter(key, value).build().toString();
    }
}
